/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tramite.beans;

import cip.util.ControladorAbstracto;
import cip.util.PaginacionFiltro;
import java.util.ArrayList;
import java.util.List;
import org.cip.esymons.tramite.bc.DocumentoDelegate;
import org.cip.esymons.tramite.bc.DocumentoGeneradoDelegate;
import org.cip.esymons.tramite.be.Documento;
import org.cip.esymons.tramite.be.DocumentoGenerado;


/**
 *
 * @author Freddy Infantes
 */
public class DocumentoGeneradoController extends ControladorAbstracto{
    private DocumentoDelegate delegado;
    private DocumentoGeneradoDelegate delegadoDG;

    private Documento Doc;
    private Documento DocGen;
    /**/
    private MiPaginador paginador;

    public DocumentoGeneradoController() {
        delegado = new DocumentoDelegate();
        delegadoDG = new DocumentoGeneradoDelegate();
        paginador = new MiPaginador<DocumentoGenerado>(null, 20);
        paginador.setFilter("");
    }

    /**
     * @return the Doc
     */
    public Documento getDoc() {
        return Doc;
    }

    /**
     * @param Doc the Doc to set
     */
    public void setDoc(Documento Doc) {
        this.Doc = Doc;
    }

    /**
     * @return the DocGen
     */
    public Documento getDocGen() {
        return DocGen;
    }

    /**
     * @param DocGen the DocGen to set
     */
    public void setDocGen(Documento DocGen) {
        this.DocGen = DocGen;
    }

    /**
     * @return the paginador
     */
    public MiPaginador getPaginador() {
        return paginador;
    }

    /**
     * @param paginador the paginador to set
     */
    public void setPaginador(MiPaginador paginador) {
        this.paginador = paginador;
    }

    public final class MiPaginador<k> extends PaginacionFiltro {

        private String desc;

        public MiPaginador(String action, int cantidad) {
            super(action, cantidad);
        }

        @Override
        public int contar() throws Exception {
            try {
                return delegadoDG.contarPaginadorDocumentoGenerado(desc);
            } catch (Exception e) {
                return 0;
            }
        }

        @Override
        public List listar() throws Exception {
            try {
                return delegadoDG.paginadorDocumentoGenerado(getPaginador().getCantidadxPagina(), getPaginador().getPosicion(),desc);
            } catch (Exception e) {
                return new ArrayList();
            }
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String valor) {
            try {
                if (!valor.equals(desc)) {
                    desc = valor;
                    reset();
                }
            } catch (Exception ex) {
                desc = null;
            }
        }
    }

//    public String nuevo(){
//        tipoDoc = new TipoDocumento();
//        return "nuevo";
//    }
//
//    public String grabar(){
//        delegado.create(tipoDoc);
//        getPaginador().reset();
//        return "buscar";
//    }
//
//    public String buscar(){
//        getPaginador().reset();
//        return null;
//    }
//
//    public String actualizar(){
//        delegado.edit(tipoDoc);
//        getPaginador().reset();
//        return "buscar";
//    }
}
